home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Environments
/
PowerMacOberon feb96
/
Source
/
Sys.Mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1995-09-19
|
38KB
|
671 lines
Syntax10b.Scn.Fnt
Syntax10.Scn.Fnt
StampElems
Alloc
19 Sep 95
Syntax10i.Scn.Fnt
Courier10.Scn.Fnt
MODULE Sys; (*HM/mah/CS 94-06-08 /
IMPORT Modules, SYSTEM;
CONST
align68K* = 1; (** proper alignment for structures to be passed to the MacOS *)
fsAtMark* = 0; (** Positioning mode: at current position *)
fsFromStart* = 1; (** Positioning mode: offset relative to beginning of medium *)
fsFromMark* = 3; (** Positioning mode: offset relative to current position *)
smSystemScript* = -1; (** System script code for files*)
ApplSig* = 2E4F6234H; (** '.Ob4' *)
FileSig* = 54455854H; (** 'TEXT' *)
fsRdPerm* = 1; (** Access permissoin: request to read *)
fsRdWrPerm* = 3; (** Access permission: request to read and write *)
kPowerPCISA* = 1;
uppVBLProcInfo* = 19802H; (** register based, 1 input parameter in A0*)
exceptionProcInfo* = 2H; (** register based, no parameters*)
(*--- memory manager ---*)
ProcPtr* = POINTER TO RECORD proc*: PROCEDURE END;
Str255* = ARRAY 256 OF CHAR;
Str63* = ARRAY 64 OF CHAR;
(*--- QuickDraw ---*)
Point*= RECORD [align68K] v*, h*: INTEGER END;
Point0* = LONGINT; (*for toolbox calling conventions*)
Rect*= RECORD [align68K] top*, left*, bottom*, right*: INTEGER END; (*8*)
Cursor*= RECORD [align68K] data*, mask*: ARRAY 8 OF SET; hotSpot*: Point END;
RgnHandle*= LONGINT;
Pattern*= ARRAY 2 OF LONGINT;
RGBColor*=RECORD [align68K] red*, green*, blue*: INTEGER END;
BitMapPtr*= LONGINT; (* Should be POINTER TO BitMap; except for GC *)
BitMapRealPtr*= POINTER TO BitMap;
BitMap*= RECORD [align68K] (*14*)
baseAddr*: LONGINT;
rowBytes*: INTEGER;
bounds*: Rect
END;
PixMapPtr* = LONGINT; (* should be POINTER TO PixMap except for GC *)
PixMapRealPtr* = POINTER TO PixMap; (* see IM p. V-52 ff. *)
PixMapHandle* = LONGINT; (* should be (see below) except for GC *)
PixMapRealHandle* = POINTER TO RECORD [align68K] p*: PixMapPtr END;
PixMap* = RECORD [align68K] (BitMap)
pmVersion*: INTEGER;
packType*: INTEGER;
packSize*: LONGINT;
hRes*: LONGINT;
vRes*: LONGINT;
pixelType*: INTEGER;
pixelSize*: INTEGER;
cmpCount*: INTEGER;
cmpSize*: INTEGER;
planeBytes*: LONGINT;
pmTable*: LONGINT;
pmReserved*: LONGINT
END;
PixPatPtr* = LONGINT; (* should be POINTER TO PixPat except for GC *)
PixPatRealPtr* = POINTER TO PixPat; (* see IM p. V-55 ff. *)
PixPatHandle* = LONGINT; (* should be (see below) except for GC *)
PixPatRealHandle* = POINTER TO RECORD [align68K] p*: PixPatPtr END;
PixPat = RECORD
patType*: INTEGER;
patMap*: PixMapHandle;
patData*: LONGINT;
patXData*: LONGINT;
patXValid*: INTEGER;
patXMap*: LONGINT;
pat1Data*: Pattern
END;
GrafPtr*= LONGINT; (* Should be POINTER TO GrafPort; except for GC *)
GrafRealPtr*= POINTER TO GrafPort;
GrafPort*= RECORD [align68K]
device*: INTEGER; portBits*: BitMap; portRect*: Rect;
visRgn*, clipRgn*: RgnHandle; bkPat*, fillPat*: Pattern;
pnLoc*, pnSize*: Point; pnMode*: INTEGER; pnPat*: Pattern; pnVis*: INTEGER;
txFont*, txFace*, txMode*, txSize*: INTEGER; spExtra*: LONGINT;
fgColor*, bkColor*: LONGINT; colrBit*: INTEGER;
patStretch*: INTEGER; picSave*, rgnSave*, polySave*, grafProcs*: LONGINT
END;
CGrafPtr* = LONGINT; (* should be POINTER TO CGrafPort except for GC *)
CGrafRealPtr* = POINTER TO CGrafPort; (* see IM p. V-50 ff. *)
CGrafPort* = RECORD [align68K]
device*: INTEGER;
portPixMap*: PixMapHandle;
portVersion*: INTEGER;
grafVars*: LONGINT;
chExtra*: INTEGER;
pnLocHFrac*: INTEGER;
portRect*: Rect;
visRgn*: RgnHandle;
clipRgn*: RgnHandle;
bkPixPat*: PixPatHandle;
rgbFgColor*: RGBColor;
rgbBkColor*: RGBColor;
pnLoc*: Point;
pnSize*: Point;
pnMode*: INTEGER;
pnPixPat*: PixPatHandle;
fillPixPat*: PixPatHandle;
pnVis*: INTEGER;
txFont*: INTEGER;
txFace*: INTEGER;
txMode*: INTEGER;
txSize*: INTEGER;
spExtra*: LONGINT;
fgColor*: LONGINT;
bkColor*: LONGINT;
colrBit*: INTEGER;
patStretch*: INTEGER;
picSave*: LONGINT;
rgnSave*: LONGINT;
polySave*: LONGINT;
grafProcs*: LONGINT
END;
TextStyle*=RECORD [align68K] tsFont*, tsFace*, tsSize*: INTEGER; red*, green*, blue*: INTEGER END;
TERec*= RECORD [align68K]
misc0: ARRAY 30 OF INTEGER;
teLength*: INTEGER; teHandle*: LONGINT;
misc1: ARRAY 4 OF INTEGER;
txFont*, txFace*, txMode*, txSize*: INTEGER END;
TEHandle*= LONGINT; (* Should be POINTER TO TEHandleRec; except for GC *)
TERealHandle*= POINTER TO TEHandleRec;
TEHandleRec*= RECORD [align68K] p*: POINTER TO TERec END;
TEStyleRec*=RECORD [align68K]
nRuns*: INTEGER; misc: ARRAY 9 OF INTEGER;
runs*: ARRAY 8000 OF RECORD [align68K] startChar*, styleIndex*: INTEGER END
END;
TEStyleHandle*= LONGINT; (* Should be POINTER TO TEStyleHandleRec; except for GC *)
TEStyleRealHandle*= POINTER TO TEStyleHandleRec;
TEStyleHandleRec*= RECORD [align68K] p*: POINTER TO TEStyleRec END;
FontInfo*= RECORD [align68K] ascent*, descent*, widMax*, leading*: INTEGER END;
TPrPtr* = LONGINT;
TPrRealPtr*=POINTER TO RECORD [align68K] x0*: ARRAY 8 OF CHAR; top*, left*, bottom*, right*: INTEGER;
x1*: ARRAY 52 OF CHAR;
bjdl*: SHORTINT END; (*more fields follow, size=120 bytes*)
TPrHnd*=LONGINT;
TPrRealHnd*=POINTER TO RECORD [align68K] p*: TPrPtr END;
TPrStatus*=ARRAY 13 OF INTEGER;
(*--- event manager ---*)
KeyMap* = ARRAY 4 OF SET;
EventRecord*=RECORD [align68K]
what*: INTEGER; message*, when*: LONGINT; where*: Point; modifiers*: INTEGER
END;
(*--- file manager ---*)
FSSpecPtr* = POINTER TO FSSpec;
FSSpec* = RECORD [align68K]
vRefNum*: INTEGER; (* volume reference number *)
parID*: LONGINT; (* directory ID of parent directory *)
name*: Str63 (* filename or directory name *)
END;
FInfo* = RECORD [align68K]
fdType*, fdCreator*: LONGINT;
fdFlags*, fdLocV*, fdLocH*, fdFldr*: INTEGER
END;
DInfo* = RECORD [align68K]
frRect*: Rect; (* folder's rectangle *)
frFlags*: INTEGER; (* flags *)
frLocation*: Point; (* folder's location *)
frView*: INTEGER (* folder's view *)
END;
DXInfo* = RECORD [align68K]
frScroll*: Point; (* scroll position *)
frOpenChain*: LONGINT; (* directory ID chain of open folders *)
frUnused: INTEGER;
frComment*: INTEGER; (* comment ID *)
frPutAway*: LONGINT; (* directory ID *)
END;
FXInfo* = RECORD [align68K]
fdIconID*: INTEGER; (* icon ID *)
fdUnused: ARRAY 4 OF INTEGER;
fdComment*: INTEGER; (* comment ID *)
fdPutAway*: LONGINT; (* home directory ID *)
END;
ParmBlkPtr* = POINTER TO ParmBlkRec;
ParmBlkRec* = RECORD [align68K] (*24*)
qLink*: LONGINT; (* next queue entry *)
qType*: INTEGER; (* queue type *)
ioTrap*: INTEGER; (* routine trap *)
ioCmdAddr*: LONGINT; (* routine address *)
ioCompletion*: LONGINT; (* pointer to completion routine *)
ioResult*: INTEGER; (* result code *)
ioNamePtr*: LONGINT; (* pointer to pathname *)
ioVRefNum*: INTEGER (* volume specification *)
END;
ParmBlkFilePtr* = POINTER TO ParmBlkFile;
ParmBlkFile* = RECORD (ParmBlkRec)
ioFRefNum*: INTEGER; (* file reference number *)
ioFVersNum*: SHORTINT; (* (unused) file version number (should always be 0) *)
ioFDirIndex*: INTEGER; (* directory index, used with PBHGetFInfo *)
ioFlAttrib*, ioFlVersNum*: SHORTINT; (* file attributes (unused) file version number (must always be 0) *)
ioFlFndrInfo*: FInfo; (* information used by the Finder *)
ioFlNum*: LONGINT; (* file ID *)
ioFlStBlk*: INTEGER; (* first allocation block of data fork, 0 if the data fork is empty *)
ioFlLgLen*, ioFIPyLen*: LONGINT; (* logical and physical EOF of data fork *)
ioFlRStBlk*: INTEGER; (* first allocation block of resource fork, 0 if the data fork is empty *)
ioFlRLgLen*, ioFlRPyLen*: LONGINT; (* logical and physical EOF of resource fork *)
ioFlCrDat*, ioFlMdDat*: LONGINT (* data and time of creation and last modification in seconds since midnight January 1, 1904 *)
END;
CInfoPBPtr* = POINTER TO CInfoPBRec;
CInfoPBRec* = RECORD (ParmBlkRec)
ioFRefNum*: INTEGER; (* file reference number *)
ioFVersNum*: SHORTINT; (* version number *)
filler1: SHORTINT;
ioFDirIndex*: INTEGER; (* directory index *)
ioFlAttrib*: SHORTINT; (* file or directory attributes *)
ioACUser*: SHORTINT; (* directory access rights *)
END;
CInfoPBFilePtr* = POINTER TO CInfoPBFileRec;
CInfoPBFileRec* = RECORD (CInfoPBRec)
ioFlFndrInfo*: FInfo; (* information used by the Finder *)
ioDirID*: LONGINT; (* directory ID or file ID *)
ioFlStBlk*: INTEGER; (* first allocation block of data fork *)
ioFlLgLen*, ioFlPyLen*: LONGINT; (* logical and physical EOF of data fork *)
ioFlRStBlk*: INTEGER; (* first allocation block of resource fork, 0 if the data fork is empty *)
ioFlRLgLen*, ioFlRPyLen*: LONGINT; (* logical and physical EOF of resource fork *)
ioFlCrDat*, ioFlMdDat*: LONGINT; (* data and time of creation and last modification in seconds since midnight January 1, 1904 *)
ioFlBkDat*: LONGINT; (* data and time of last backup *)
ioFlXFndrInfo*: FXInfo; (* additional Finder information *)
ioFlParID*: LONGINT; (* file parent directory ID *)
ioFlClpSiz*: LONGINT (* file's clump size *)
END;
(*--- window manager ---*)
WindowPtr*= LONGINT; (* Should be POINTER TO WindowPort except for GC *)
WindowRealPtr*= POINTER TO WindowPort;
WindowPort*= RECORD (GrafPort)
windowKind*: INTEGER; visible*, hilited*, goAwayFlag*, spareFlag*: BOOLEAN;
winMisc*: ARRAY 19 OF INTEGER; refCon*: LONGINT
END;
(*--- mixed mode manager ---*)
UniversalProcPtr* = POINTER TO RoutineDescriptor;
RoutineDescriptor* = RECORD [align68K]
goMixedModeTrap*: INTEGER;
version*, flags*: SHORTINT;
reserved1*: LONGINT;
reserved2*, selectorInfo*: SHORTINT;
count*: INTEGER;
procInfo*: LONGINT;
reserved3*, ISA*: SHORTINT;
routineFlags*: INTEGER;
proc*: ProcPtr;
reserved4*, selector*: LONGINT
END;
(*--- exception manager ---*)
ExceptionInfo* = POINTER TO ExceptionInfoDesc;
ExceptionInfoDesc* = RECORD [align68K]
kind*: LONGINT;
spec*: POINTER TO RECORD [align68K]
dummy0, CTR*, dummy1, LR*, dummy2, PC*, CR*, XER*, MSR*: LONGINT
END;
reg*: POINTER TO RECORD [align68K]
R*: ARRAY 64 OF LONGINT (** reg i = R[2*i+1]*)
END;
fp*: POINTER TO RECORD [align68K]
R*: ARRAY 64 OF LONGINT; (** reg i = R[2*i]*)
FPSCR*: LONGINT
END;
mem*: POINTER TO RECORD [align68K]
area*, adr*, error*, refKind*: LONGINT
END
END;
ExceptionHandler* = PROCEDURE (context: ExceptionInfo): LONGINT;
(*--- vertical retrace manager ---*)
VBLTask* = POINTER TO VBLTaskDesc;
VBLTaskDesc* = RECORD [align68K]
qLink*: LONGINT; (* should be VBLTask *)
qType*: INTEGER;
vblAddr*: LONGINT; (* should be UniversalProcPtr *)
vblCount*, vblPhase*: INTEGER
END;
(*--- OS utilities ---*)
DateTimeRec* = RECORD [align68K]
year*, month*, day*, hour*, minute*, second*, dayOfWeek*: INTEGER
END;
(*--- menu manager ---*)
MBarHnd*= LONGINT;
MenuHandle*= LONGINT;
done*, n*: LONGINT;
interfaceLib: LONGINT;
(*--- print manager ---*)
PrGeneral*: PROCEDURE (pData: LONGINT);
PrError*: PROCEDURE () : INTEGER;
PrOpen*: PROCEDURE;
PrValidate*: PROCEDURE (hPrint: TPrHnd) : BOOLEAN;
PrintDefault*: PROCEDURE (hPrint: TPrHnd);
PrStlDialog*: PROCEDURE (hPrint: TPrHnd) : BOOLEAN;
PrJobDialog*: PROCEDURE (hPrint: TPrHnd) : BOOLEAN;
PrOpenDoc*: PROCEDURE (hPrint: TPrHnd; pPrPort, pIOBuf: LONGINT) : GrafPtr;
PrCloseDoc*: PROCEDURE (pPrPort: GrafPtr);
PrClose*: PROCEDURE;
PrOpenPage*: PROCEDURE (pPrPort: GrafPtr; pPageFrame: LONGINT);
PrClosePage*: PROCEDURE (pPrPort: GrafPtr);
PrPicFile*: PROCEDURE (hPrint: TPrHnd; pPrPort, pIOBuf, pDevBuf: LONGINT; VAR prStatus: TPrStatus);
(*--- event manager ---*)
GetKeys*: PROCEDURE (VAR keys: KeyMap);
WaitNextEvent*: PROCEDURE (mask: INTEGER; event: EventRecord; sleep, mouseRgn: LONGINT) : BOOLEAN;
GetNextEvent*: PROCEDURE (mask: INTEGER; event: EventRecord) : BOOLEAN;
SystemClick*: PROCEDURE (theEvent: EventRecord; theWindow: WindowPtr);
Button*: PROCEDURE () : BOOLEAN;
GetMouse*: PROCEDURE (mouseLoc: Point);
FlushEvents*: PROCEDURE (whichMask, stopMask: INTEGER);
TickCount*: PROCEDURE () : LONGINT;
(*--- exception manager ---*)
InstallExcHandler*: PROCEDURE (new: ProcPtr): ProcPtr;
(*--- file manager ---*)
PBHGetFInfo*: PROCEDURE (parm: ParmBlkPtr);
FSpOpenDF*: PROCEDURE (spec: FSSpec; permission: SHORTINT; VAR refNum: INTEGER): INTEGER;
FSpOpenRF*: PROCEDURE (spec: FSSpec; permission: SHORTINT; VAR refNum: INTEGER): INTEGER;
FSpCreate*: PROCEDURE (spec: FSSpec; creator: LONGINT; fileType: LONGINT; scriptTag: INTEGER): INTEGER;
FSpDirCreate*: PROCEDURE (spec: FSSpec; scriptTag: INTEGER; VAR createdDirID: LONGINT): INTEGER;
FSpDelete*: PROCEDURE (spec: FSSpec): INTEGER;
FSpGetFInfo*: PROCEDURE (spec: FSSpec; fndrInfo: FInfo): INTEGER;
FSpSetFInfo*: PROCEDURE (spec: FSSpec; fndrInfo: FInfo): INTEGER;
FSpRename*: PROCEDURE (spec: FSSpec; newName: Str255): INTEGER;
FSpCatMove*: PROCEDURE (source: FSSpec; dest: FSSpec): INTEGER;
FSMakeFSSpec*: PROCEDURE (vRefNum: INTEGER; dirID: LONGINT; fileName: Str255; spec: FSSpec): INTEGER;
FSRead*: PROCEDURE (refNum: INTEGER; VAR count: LONGINT; buffPtr: LONGINT): INTEGER;
FSWrite*: PROCEDURE (refNum: INTEGER; VAR count: LONGINT; buffPtr: LONGINT): INTEGER;
FSClose*: PROCEDURE (refNum: INTEGER): INTEGER;
GetEOF*: PROCEDURE (refNum: INTEGER; VAR logEOF: LONGINT): INTEGER;
SetEOF*: PROCEDURE (refNum: INTEGER; logEOF: LONGINT): INTEGER;
GetFPos*: PROCEDURE (refNum: INTEGER; VAR filePos: LONGINT): INTEGER;
SetFPos*: PROCEDURE (refNum: INTEGER; posMode: INTEGER; posOff: LONGINT): INTEGER;
Allocate*: PROCEDURE (refNum: INTEGER; VAR count: LONGINT): INTEGER;
HGetVol*: PROCEDURE (volName: LONGINT; VAR vRefNum: INTEGER; VAR dirID: LONGINT): INTEGER;
HSetVol*: PROCEDURE (volName: LONGINT; vRefNum: INTEGER; dirID: LONGINT): INTEGER;
FlushVol*: PROCEDURE (volName: LONGINT; vRefNum: INTEGER): INTEGER;
UnmountVol*: PROCEDURE (volName: LONGINT; vRefNum: INTEGER): INTEGER;
Eject*: PROCEDURE (volName: LONGINT; vRefNum: INTEGER): INTEGER;
PBGetCatInfo*: PROCEDURE (parm: CInfoPBPtr): INTEGER;
(*--- memory manager ---*)
DisposePtr*: PROCEDURE (p: LONGINT);
FreeMem*: PROCEDURE (): LONGINT;
GetApplLimit*: PROCEDURE (): LONGINT;
HLock*: PROCEDURE (handle: LONGINT);
HUnlock*: PROCEDURE (handle: LONGINT);
MaxApplZone*: PROCEDURE;
MaxMem*: PROCEDURE(VAR grow: LONGINT): LONGINT;
MemError*: PROCEDURE (): INTEGER;
NewPtr*: PROCEDURE (size: LONGINT): LONGINT;
NewPtrClear*: PROCEDURE (size: LONGINT): LONGINT;
SetApplLimit*: PROCEDURE (adr: LONGINT);
SetPtrSize*: PROCEDURE (p, newSize: LONGINT);
StackSpace*: PROCEDURE (): LONGINT;
TopMem*: PROCEDURE (): LONGINT;
NewHandle*: PROCEDURE (byteCount: LONGINT) : TPrHnd;
(*--- menu manager ---*)
AddResMenu*: PROCEDURE (theMenu: MenuHandle; theType: LONGINT);
ClearMenuBar*: PROCEDURE ();
DrawMenuBar*: PROCEDURE ();
GetItem*: PROCEDURE (theMenu: MenuHandle; item: INTEGER; VAR itemString: Str255);
GetMenu*: PROCEDURE (resourceID: INTEGER) : MenuHandle;
GetMBarHeight*: PROCEDURE(): INTEGER;
GetMHandle*: PROCEDURE (menuID: INTEGER): MenuHandle;
GetNewMBar*: PROCEDURE (menuBarID: INTEGER) : MBarHnd;
HiliteMenu*: PROCEDURE (menuID: INTEGER);
InitMenus*: PROCEDURE ();
MenuSelect*: PROCEDURE (startPt: Point0) : LONGINT;
MenuKey*: PROCEDURE (ch : INTEGER) : LONGINT;
SetMenuBar*: PROCEDURE (menuList: MBarHnd);
(*--- mixed mode manager ---*)
DisposeRoutineDesc*: PROCEDURE (upp: UniversalProcPtr);
NewRoutineDesc*: PROCEDURE (procAdr, procInfo: LONGINT; isa: SHORTINT): UniversalProcPtr;
(*--- OS utilities ---*)
GetNamedResource*: PROCEDURE (theType: LONGINT; name: Str255) : LONGINT;
SecondsToDate*: PROCEDURE (secs: LONGINT; td: DateTimeRec);
GetDateTime*: PROCEDURE (VAR secs: LONGINT);
SetDateTime*: PROCEDURE (secs: LONGINT);
DateToSeconds*: PROCEDURE (td: DateTimeRec; VAR secs: LONGINT);
SysBeep*: PROCEDURE (duration: INTEGER);
OpenResFile*: PROCEDURE (fileName: Str255) : INTEGER;
ResError*: PROCEDURE () : INTEGER;
ExitToShell*: PROCEDURE;
(*--- QuickDraw ---*)
CopyBits*: PROCEDURE (srcBits, dstBits: BitMap; srcRect, dstRect: Rect; mode: INTEGER; maskRgn: LONGINT);
CopyBits2*: PROCEDURE (srcBits, dstBits: PixMap; srcRect, dstRect: Rect; mode: INTEGER; maskRgn: LONGINT);
DrawChar*: PROCEDURE (ord : INTEGER);
DrawText*: PROCEDURE (textbuf: LONGINT; firstByte, byteCount: INTEGER);
ForeColor*: PROCEDURE (color: LONGINT);
FrameOval*: PROCEDURE (r: Rect);
HideCursor*: PROCEDURE ();
Lin*: PROCEDURE (h, v: INTEGER);
LineTo*: PROCEDURE (h, v: INTEGER);
MoveTo*: PROCEDURE (h, v: INTEGER);
PaintRect*: PROCEDURE (r: Rect);
PenMode*: PROCEDURE (mode: INTEGER);
PenPat*: PROCEDURE (pat : Pattern);
PmForeColor*: PROCEDURE (dstEntry: INTEGER);
SetClip*: PROCEDURE (clip: RgnHandle);
SetCurs*: PROCEDURE (cursor: Cursor);
SetPort*: PROCEDURE (port: GrafPort);
ShowCursor*: PROCEDURE ();
TextFont*: PROCEDURE (font: INTEGER);
TextFace*: PROCEDURE (face: INTEGER);
TextMode*: PROCEDURE (fmode : INTEGER);
TextSize*: PROCEDURE (size: INTEGER);
SetRectRgn*: PROCEDURE (rgn: RgnHandle; left, top, right, bottom: INTEGER);
OpenPort*: PROCEDURE (port: GrafPort);
RectRgn*: PROCEDURE (rgn: RgnHandle; r: Rect);
AnimateEntry*: PROCEDURE (dstWindow: WindowPtr; dstEntry: INTEGER; scrRGB: RGBColor);
CharWidth*: PROCEDURE (ch: INTEGER) : INTEGER;
GetFontInf*: PROCEDURE (info: FontInfo);
NewRgn*: PROCEDURE () : RgnHandle;
InitGraf*: PROCEDURE (VAR thePort: GrafPtr);
InitCursor*: PROCEDURE ();
CloseCPort*: PROCEDURE (port:CGrafPort);
OpenCPort*: PROCEDURE (port:CGrafPort);
GetPalette*: PROCEDURE (win: WindowPtr) : LONGINT;
SetPalette*: PROCEDURE (win: WindowPtr; pal : LONGINT; update : BOOLEAN);
ActivatePalette*: PROCEDURE (win: WindowPtr);
GetNewPalette*: PROCEDURE (id : INTEGER):LONGINT;
SetEntryColor*: PROCEDURE (pal : LONGINT; idx : INTEGER; rgb : RGBColor);
(*--- text mamager ---*)
TEStylNew*: PROCEDURE (destRect, viewRect: Rect) : TEHandle;
TEStylPaste*: PROCEDURE (hTE: TEHandle);
TEGetStylHandle*: PROCEDURE (hTE: TEHandle) : TEStyleHandle;
TEGetStyle*: PROCEDURE (off: INTEGER; styl: TextStyle; VAR lh, fa: INTEGER; hTE: TEHandle);
TESetSelect*: PROCEDURE (selStart, selEnd: LONGINT; hTE: TEHandle);
TEInsert*: PROCEDURE (textAdr: LONGINT; length: LONGINT; hTE: TEHandle);
TEDelete*: PROCEDURE (hTE: TEHandle);
TESetStyle*: PROCEDURE (mode: INTEGER; newStyle: TextStyle; redraw: BOOLEAN; hTE: TEHandle);
TECut*: PROCEDURE (hTE: TEHandle);
GetFontNam*: PROCEDURE (fontNum: INTEGER; VAR theName: Str255);
GetFNum*: PROCEDURE (fontName: Str255; VAR theNum: INTEGER);
InitFonts*: PROCEDURE ();
TEInit*: PROCEDURE ();
SetFScaleDisable*: PROCEDURE (fontScaleDisable: BOOLEAN);
(*--- window manager ---*)
BeginUpdate*: PROCEDURE (theWindow: GrafPort);
BeginUpdate1*: PROCEDURE (theWindowMsg: LONGINT);
EndUpdate*: PROCEDURE (theWindow: GrafPort);
EndUpdate1*: PROCEDURE (theWindowMsg: LONGINT);
SelectWindow*: PROCEDURE (theWindow: GrafPort);
SelectWindow1*: PROCEDURE (theWindowPtr: WindowPtr);
ShowWindow*: PROCEDURE (theWindow: GrafPort);
HideWindow*: PROCEDURE (theWindow: GrafPort);
Alert*: PROCEDURE (alertID: INTEGER; filterProc: LONGINT) : INTEGER;
OpenDeskAcc*: PROCEDURE (theAcc: Str255) : INTEGER;
FrontWindow*: PROCEDURE () : WindowPtr;
FindWindow*: PROCEDURE (thePoint: Point0; VAR theWindow: WindowPtr) : INTEGER;
CloseWindow*: PROCEDURE (thewindow: WindowPtr);
DragWindow*: PROCEDURE (theWindow: WindowPtr; startPt: Point0; boundsRect: Rect);
NewCWindow*: PROCEDURE (stor: WindowPort; bnds: Rect; tit: Str255; vis: BOOLEAN; def: INTEGER; bh: LONGINT;
gaw: BOOLEAN; rc: LONGINT) : WindowPtr;
InitWindows*: PROCEDURE ();
InitDialogs*: PROCEDURE (restartProc: LONGINT);
SetWTitle*: PROCEDURE (theWindow: GrafPtr; title: Str255);
(*--- vertical retrace manager ---*)
VInstall*: PROCEDURE (task: VBLTask): INTEGER;
PROCEDURE AllocBlock* (VAR adr: LONGINT; size: LONGINT);
BEGIN
IF size < 0 THEN
adr := NewPtrClear(-size)
ELSE
adr := NewPtr(size)
END
END AllocBlock;
(* PROCEDURE AdjustBlock*(adr, newSize: LONGINT);
BEGIN
(*TD SYS.PUTREG(8, adr); SYS.PUTREG(0, newSize);
SetPtrSize; TPNE20
END AdjustBlock; *)
PROCEDURE DeAllocBlock*(adr: LONGINT);
BEGIN
DisposePtr (adr);
END DeAllocBlock;
PROCEDURE Assign* (sym: ARRAY OF CHAR; adr: LONGINT);
VAR from, to: ProcPtr; a: LONGINT;
BEGIN
a := Modules.ThisSym(interfaceLib, sym);
IF a # 0 THEN
from := SYSTEM.VAL(ProcPtr, a);
to := SYSTEM.VAL(ProcPtr, adr);
to.proc := from.proc
ELSE done := n;
Modules.Print("--- Sys could not find ", 0); Modules.Print(sym, 0); Modules.Print(" $", 0)
END;
INC(n)
END Assign;
PROCEDURE ConvertTime* (secs: LONGINT; VAR t, d: LONGINT);
VAR td: DateTimeRec;
BEGIN
SecondsToDate(secs, td);
d:=LONG(td.year MOD 100)*512+td.month*32+td.day; t:=LONG(td.hour)*4096+td.minute*64+td.second
END ConvertTime;
PROCEDURE SetClock* (t, d: LONGINT);
VAR td: DateTimeRec; secs: LONGINT;
BEGIN
td.year:=SHORT(d DIV 512 MOD 100)+1900; td.month:=SHORT(d DIV 32 MOD 16); td.day:=SHORT(d MOD 32);
td.hour:=SHORT(t DIV 2048 MOD 32); td.minute:=SHORT(t DIV 32 MOD 64); td.second:=SHORT (t MOD 32*2);
DateToSeconds (td, secs); SetDateTime (secs);
END SetClock;
PROCEDURE UPP* (procAdr, procInfo: LONGINT): UniversalProcPtr;
BEGIN
RETURN NewRoutineDesc(procAdr, procInfo, kPowerPCISA)
END UPP;
PROCEDURE InstallExceptionHandler* (new: ExceptionHandler): ExceptionHandler;
VAR pp, pp1: ProcPtr;
BEGIN
pp := SYSTEM.VAL(ProcPtr, NewPtr(8));
pp1 := SYSTEM.VAL(ProcPtr, SYSTEM.ADR(new));
pp.proc := pp1.proc;
pp1 := InstallExcHandler(pp);
IF pp1 = NIL THEN RETURN NIL ELSE RETURN SYSTEM.VAL(ExceptionHandler, pp1.proc) END
END InstallExceptionHandler;
BEGIN
done := 0; n := 0;
interfaceLib := Modules.ThisLib("InterfaceLib", TRUE);
Assign("PrGeneral", SYSTEM.ADR(PrGeneral));
Assign("PrError", SYSTEM.ADR(PrError));
Assign("PrOpen", SYSTEM.ADR(PrOpen));
Assign("PrValidate", SYSTEM.ADR(PrValidate));
Assign("PrintDefault", SYSTEM.ADR(PrintDefault));
Assign("PrStlDialog", SYSTEM.ADR(PrStlDialog));
Assign("PrJobDialog", SYSTEM.ADR(PrJobDialog));
Assign("PrOpenDoc", SYSTEM.ADR(PrOpenDoc));
Assign("PrCloseDoc", SYSTEM.ADR(PrCloseDoc));
Assign("PrClose", SYSTEM.ADR(PrClose));
Assign("PrOpenPage", SYSTEM.ADR(PrOpenPage));
Assign("PrClosePage", SYSTEM.ADR(PrClosePage));
Assign("PrPicFile", SYSTEM.ADR(PrPicFile));
Assign("SysBeep", SYSTEM.ADR(SysBeep));
Assign("PBHGetFInfoSync", SYSTEM.ADR(PBHGetFInfo));
Assign("FSpOpenDF", SYSTEM.ADR(FSpOpenDF));
Assign("FSpOpenRF", SYSTEM.ADR(FSpOpenRF));
Assign("FSMakeFSSpec", SYSTEM.ADR(FSMakeFSSpec));
Assign("FSClose", SYSTEM.ADR(FSClose));
Assign("FSRead", SYSTEM.ADR(FSRead));
Assign("FSWrite", SYSTEM.ADR(FSWrite));
Assign("FSpCreate", SYSTEM.ADR(FSpCreate));
Assign("FSpDirCreate", SYSTEM.ADR(FSpDirCreate));
Assign("FSpDelete", SYSTEM.ADR(FSpDelete));
Assign("FSpRename", SYSTEM.ADR(FSpRename));
Assign("FSpCatMove", SYSTEM.ADR(FSpCatMove));
Assign("FSpGetFInfo", SYSTEM.ADR(FSpGetFInfo));
Assign("FSpSetFInfo", SYSTEM.ADR(FSpSetFInfo));
Assign("GetEOF", SYSTEM.ADR(GetEOF));
Assign("SetEOF", SYSTEM.ADR(SetEOF));
Assign("GetFPos", SYSTEM.ADR(GetFPos));
Assign("SetFPos", SYSTEM.ADR(SetFPos));
Assign("Allocate", SYSTEM.ADR(Allocate));
Assign("HGetVol", SYSTEM.ADR(HGetVol));
Assign("HSetVol", SYSTEM.ADR(HSetVol));
Assign("FlushVol", SYSTEM.ADR(FlushVol));
Assign("UnmountVol", SYSTEM.ADR(UnmountVol));
Assign("Eject", SYSTEM.ADR(Eject));
Assign("PBGetCatInfoSync", SYSTEM.ADR(PBGetCatInfo));
Assign("SecondsToDate", SYSTEM.ADR(SecondsToDate));
Assign("GetDateTime", SYSTEM.ADR(GetDateTime));
Assign("SetDateTime", SYSTEM.ADR(SetDateTime));
Assign("DateToSeconds", SYSTEM.ADR(DateToSeconds));
Assign ("FlushEvents", SYSTEM.ADR (FlushEvents));
Assign ("WaitNextEvent", SYSTEM.ADR (WaitNextEvent));
Assign ("GetNextEvent", SYSTEM.ADR (GetNextEvent));
Assign ("SystemClick", SYSTEM.ADR (SystemClick));
Assign ("Button", SYSTEM.ADR (Button));
Assign ("GetMouse", SYSTEM.ADR (GetMouse));
Assign ("TickCount", SYSTEM.ADR (TickCount));
Assign ("SetPort", SYSTEM.ADR (SetPort));
Assign ("BeginUpdate", SYSTEM.ADR (BeginUpdate));
Assign ("BeginUpdate", SYSTEM.ADR (BeginUpdate1));
Assign ("EndUpdate", SYSTEM.ADR (EndUpdate));
Assign ("EndUpdate", SYSTEM.ADR (EndUpdate1));
Assign ("SelectWindow", SYSTEM.ADR (SelectWindow));
Assign ("SelectWindow", SYSTEM.ADR (SelectWindow1));
Assign ("ShowWindow", SYSTEM.ADR (ShowWindow));
Assign ("HideWindow", SYSTEM.ADR (HideWindow));
Assign ("SetCursor", SYSTEM.ADR (SetCurs));
Assign ("HideCursor", SYSTEM.ADR (HideCursor));
Assign ("ShowCursor", SYSTEM.ADR (ShowCursor));
Assign ("NewCWindow", SYSTEM.ADR (NewCWindow));
Assign ("InitWindows", SYSTEM.ADR (InitWindows));
Assign ("InitDialogs", SYSTEM.ADR (InitDialogs));
Assign ("Alert", SYSTEM.ADR (Alert));
Assign ("GetNamedResource", SYSTEM.ADR (GetNamedResource));
Assign ("OpenResFile", SYSTEM.ADR (OpenResFile));
Assign ("ResError", SYSTEM.ADR (ResError));
Assign ("OpenDeskAcc", SYSTEM.ADR (OpenDeskAcc));
Assign ("FrontWindow", SYSTEM.ADR (FrontWindow));
Assign ("FindWindow", SYSTEM.ADR (FindWindow));
Assign ("CloseWindow", SYSTEM.ADR (CloseWindow));
Assign ("DragWindow", SYSTEM.ADR (DragWindow));
Assign ("SetWTitle", SYSTEM.ADR (SetWTitle));
Assign ("SetMenuBar", SYSTEM.ADR (SetMenuBar));
Assign ("DrawMenuBar", SYSTEM.ADR (DrawMenuBar));
Assign ("AppendResMenu", SYSTEM.ADR (AddResMenu));
Assign ("ClearMenuBar", SYSTEM.ADR (ClearMenuBar));
Assign ("GetNewMBar", SYSTEM.ADR (GetNewMBar));
Assign ("GetMenu", SYSTEM.ADR (GetMenu));
Assign ("InitMenus", SYSTEM.ADR (InitMenus));
Assign ("GetMBarHeight", SYSTEM.ADR (GetMBarHeight));
Assign ("GetMenuHandle", SYSTEM.ADR (GetMHandle));
Assign ("GetMenuItemText", SYSTEM.ADR (GetItem));
Assign ("HiliteMenu", SYSTEM.ADR (HiliteMenu));
Assign ("MenuSelect", SYSTEM.ADR (MenuSelect));
Assign ("MenuKey", SYSTEM.ADR (MenuKey));
Assign ("InitFonts", SYSTEM.ADR (InitFonts));
Assign ("TEInit", SYSTEM.ADR (TEInit));
Assign ("SetFScaleDisable", SYSTEM.ADR (SetFScaleDisable));
Assign ("GetFontName", SYSTEM.ADR (GetFontNam));
Assign ("GetFNum", SYSTEM.ADR (GetFNum));
Assign ("TEStyleNew", SYSTEM.ADR (TEStylNew));
Assign ("TEStylePaste", SYSTEM.ADR (TEStylPaste));
Assign ("TEGetStyleHandle", SYSTEM.ADR (TEGetStylHandle));
Assign ("TEGetStyle", SYSTEM.ADR (TEGetStyle));
Assign ("TESetSelect", SYSTEM.ADR (TESetSelect));
Assign ("TEInsert", SYSTEM.ADR (TEInsert));
Assign ("TEDelete", SYSTEM.ADR (TEDelete));
Assign ("TESetStyle", SYSTEM.ADR (TESetStyle));
Assign ("TECut", SYSTEM.ADR (TECut));
Assign ("GetFontInfo", SYSTEM.ADR (GetFontInf));
Assign ("SetClip", SYSTEM.ADR (SetClip));
Assign ("DrawChar", SYSTEM.ADR (DrawChar));
Assign ("DrawText", SYSTEM.ADR (DrawText));
Assign ("TextFont", SYSTEM.ADR (TextFont));
Assign ("TextFace", SYSTEM.ADR (TextFace));
Assign ("TextMode", SYSTEM.ADR (TextMode));
Assign ("TextSize", SYSTEM.ADR (TextSize));
Assign ("LineTo", SYSTEM.ADR (LineTo));
Assign ("Line", SYSTEM.ADR (Lin));
Assign ("MoveTo", SYSTEM.ADR (MoveTo));
Assign ("PenMode", SYSTEM.ADR (PenMode));
Assign ("PenPat", SYSTEM.ADR (PenPat));
Assign ("PaintRect", SYSTEM.ADR (PaintRect));
Assign ("FrameOval", SYSTEM.ADR (FrameOval));
Assign ("CopyBits", SYSTEM.ADR (CopyBits));
Assign ("CopyBits", SYSTEM.ADR (CopyBits2));
Assign ("ForeColor", SYSTEM.ADR (ForeColor));
Assign ("PmForeColor", SYSTEM.ADR (PmForeColor));
Assign ("NewRgn", SYSTEM.ADR (NewRgn));
Assign ("InitGraf", SYSTEM.ADR (InitGraf));
Assign ("InitCursor", SYSTEM.ADR (InitCursor));
Assign ("CharWidth", SYSTEM.ADR (CharWidth));
Assign ("SetRectRgn", SYSTEM.ADR (SetRectRgn));
Assign ("AnimateEntry", SYSTEM.ADR (AnimateEntry));
Assign ("OpenPort", SYSTEM.ADR (OpenPort));
Assign ("RectRgn", SYSTEM.ADR (RectRgn));
Assign ("TextMode", SYSTEM.ADR (TextMode));
Assign ("PenMode", SYSTEM.ADR (PenMode));
Assign ("OpenCPort", SYSTEM.ADR (OpenCPort));
Assign ("CloseCPort", SYSTEM.ADR (CloseCPort));
Assign ("GetPalette", SYSTEM.ADR (GetPalette));
Assign ("SetPalette", SYSTEM.ADR (SetPalette));
Assign ("ActivatePalette", SYSTEM.ADR (ActivatePalette));
Assign ("GetNewPalette", SYSTEM.ADR (GetNewPalette));
Assign ("SetEntryColor", SYSTEM.ADR (SetEntryColor));
Assign("DisposePtr", SYSTEM.ADR (DisposePtr));
Assign("NewPtr", SYSTEM.ADR (NewPtr));
Assign("NewPtrClear", SYSTEM.ADR (NewPtrClear));
Assign("SetPtrSize", SYSTEM.ADR (SetPtrSize));
Assign ("HLock", SYSTEM.ADR (HLock));
Assign ("HUnlock",SYSTEM.ADR (HUnlock));
Assign ("MemError",SYSTEM.ADR (MemError));
Assign ("FreeMem",SYSTEM.ADR (FreeMem));
Assign ("MaxMem",SYSTEM.ADR (MaxMem));
Assign ("GetApplLimit",SYSTEM.ADR (GetApplLimit));
Assign ("SetApplLimit",SYSTEM.ADR (SetApplLimit));
Assign ("MaxApplZone",SYSTEM.ADR (MaxApplZone));
Assign ("StackSpace",SYSTEM.ADR (StackSpace));
Assign ("TopMem",SYSTEM.ADR (TopMem));
Assign ("NewHandle", SYSTEM.ADR (NewHandle));
Assign("GetKeys", SYSTEM.ADR (GetKeys));
Assign("DisposeRoutineDescriptor", SYSTEM.ADR (DisposeRoutineDesc));
Assign("NewRoutineDescriptor", SYSTEM.ADR (NewRoutineDesc));
Assign("VInstall", SYSTEM.ADR (VInstall));
Assign("InstallExceptionHandler", SYSTEM.ADR (InstallExcHandler));
Assign("ExitToShell", SYSTEM.ADR (ExitToShell));
END Sys.